<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css"
        integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog=="
        crossorigin="anonymous" />
    <title>Hidden Search</title>
    <script>
        window.onload = function(){
            const search = document.querySelector('.search')
            const btn = document.querySelector('.btn')
            const input = document.querySelector('.input')

            btn.addEventListener('click',()=>{
                search.classList.toggle('active')
                input.focus()
            })
        }
    </script>
    <style>
        *{
            box-sizing: border-box;
        }

        body{
            background: #b92b27;  /* fallback for old browsers */
            background: -webkit-linear-gradient(to right, #1565C0, #b92b27);  /* Chrome 10-25, Safari 5.1-6 */
            background: linear-gradient(to right, #1565C0, #b92b27); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
            font-family: 'Roboto',sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            overflow: hidden;
            margin: 0;
        }
        .search{
            position: relative;
            height: 50px;
        }
        .search .input{
            background-color: #fff;
            border: 0;
            font-size: 18px;
            padding: 15px;
            height: 50px;
            width: 50px;
            transition: width 0.3s ease;
        }

        .btn{
            background-color: #fff;
            border: 0;
            cursor: pointer;
            font-size: 24px;
            position: absolute;
            top: 0;
            left: 0;
            height: 50px;
            width: 50px;
            transition: transform 0.3s ease;
        }

        .btn:focus,
        .input:focus{
            outline: none;
        }

        .search.active .input{
            width: 200px;
        }
        .search.active .btn{
            transform: translateX(198px);
        }
    </style>
</head>
<body>
    <div class="search">
        <input type="text" class="input" placeholder="Search...">
        <button class="btn">
            <i class="fas fa-search"></i>
        </button>
    </div>
</body>

</html>